package br.unicamp.ic.inf312.arena.testeunitario.persistencia.dao;

import java.sql.SQLException;

import br.unicamp.ic.inf312.arena.modelo.artistico.Filme;
import br.unicamp.ic.inf312.arena.modelo.artistico.PecaTeatral;
import br.unicamp.ic.inf312.arena.persistencia.dao.IEspetaculoDAO;
import br.unicamp.ic.inf312.arena.util.Util;
import br.unicamp.ic.inf312.framework.persistencia.DataAccessObjectFactory;
import br.unicamp.ic.inf312.framework.teste.DAOBaseTestCase;

public class EspetaculoDAOMySQLTest extends DAOBaseTestCase {
	private static final String PERSISTENCIA_PROPERTIES = "br/unicamp/ic/inf312/persistencia.properties";

	private IEspetaculoDAO daoEspetaculo = null;

	protected void setUp() throws Exception {
		super.setUp();
		DataAccessObjectFactory.getInstance(PERSISTENCIA_PROPERTIES);
		daoEspetaculo = (IEspetaculoDAO) DataAccessObjectFactory
				.getImpl(IEspetaculoDAO.class);
	}

	public void testInserir() {
		try {
			Filme vooUnited93;
			vooUnited93 = new Filme("Voo United 93", "Drama",
					"Retrata um dos voos do atentado terrorista de 11 Stembro",
					14, "", Util.gerarDuracaoSessao(01, 35), "Columbia");
			//
			assertEquals(true, daoEspetaculo.inserir(vooUnited93));

			PecaTeatral grandeFamilia;
			grandeFamilia = new PecaTeatral("A grande família", "Comédia",
					"Peça teatral baseada na série Grande Família",
					14, "", Util.gerarDuracaoSessao(01, 35), "Globo produções", "Globo produções");
			//
			assertEquals(true, daoEspetaculo.inserir(grandeFamilia));
		} catch(SQLException sqlErr) {
			System.err.println(sqlErr.getCause());
			assertFalse(true);
		} catch(Exception err) {
			System.err.println(err.getCause());
			assertFalse(true);
		}
	}

	protected void tearDown() throws Exception {
		super.tearDown();
		daoEspetaculo = null;
	}
}